package com.csun.cmny.provider.dao;

import com.csun.cmny.provider.model.domain.DmcCsunSleepBind;
import com.csun.cmny.provider.model.dto.csunsleep.CsunSleepPageQuery;
import com.csun.cmny.provider.model.dto.propertyManagement.ProperManagementDeviceDataDto;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectSleepDataDto;
import com.csun.cmny.provider.model.dto.sleep.BedOldmanSleepReqDto;
import com.csun.cmny.provider.model.vo.CsunSleepDataReqVo;
import com.csun.cmny.provider.model.vo.csunsleep.CsunSleepVo;
import com.csun.cmny.provider.model.vo.csunsleep.DmcCsunSleepVo;
import com.csun.cmny.provider.model.vo.life.DmcDeviceByRoom;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import com.csun.cmny.provider.model.vo.propertyManagement.SleepDataVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
import java.util.Map;

public interface DmcCsunSleepBindMapper extends Mapper<DmcCsunSleepBind> {

    /**
     * query group csun sleep list with page
     *
     * @param csunSleepPageQuery    csun sleep page query
     *
     * @return  the list.
     */
    List<DmcCsunSleepVo> queryGroupCsunSleepListWithPage(CsunSleepPageQuery csunSleepPageQuery);

    /**
     * @description: TODO
     * @param: oldmanId 老人ID
     * @return:
     * @throws
     * @author huangxm
     * @date 2019/3/15 13:39
     */
    Map<String,Object> getRecentData(@Param("oldmanId")Integer oldmanId);


    /**
     * query csun sleep data by ded oldman list
     *
     * @param bedOldmanSleepReqDtoList bed oldman sleep req dto list
     *
     * @return the list
     */
    List<CsunSleepDataReqVo> queryCsunSleepDataByBedOldmanList(@Param("bedOldmanSleepReqDtoList") List<BedOldmanSleepReqDto> bedOldmanSleepReqDtoList);

    DmcDeviceByRoom selectRoomIdByDeviceId(Long alertId);

    List<SleepDataVo> selectCunuSleepData( SelectSleepDataDto selectSleepDataDto);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);

    List<DmcCsunSleepVo> queryGroupCsunSleepList(CsunSleepVo csunSleepPageQuery);
}